At present, a software-defined network draws much attention of the academic circle and the industrial circle. The software-defined network allows a network operator to dynamically manage network resources and network behaviors. At the same time, the software-defined network makes the development of new network applications more flexible. The software-defined network decouples a data plane and a control plane of a network so that the control plane determines a path in which a flow travels and the data plane performs corresponding forwarding operation based on the decision of the control plane. The software-defined network maintains one network view with global consistency by using a control plane of one logic center. In order to guarantee availability and extendability of the control plane, such a control plane usually includes a plurality of distributed controllers.
The control plane of the logic center is a critical part of the software-defined network. Mapping of one designed control plane and a data plane can be achieved by allocating one available controller list (including one master controller and several slave controllers) to each switch. The master controller is in charge of receiving flow requests of switches covered by the master controller, calculating one routing decision for each flow and installing a flow rule to a relevant switch on the path. In this way, the switch can perform flow forwarding based on the routing decision made by the control plane. In order to achieve the above design, the control plane and the data plane must communicate with each other through a secure link. The secure link can be implemented to pass through a special control channel (out of band) or share a same network link (in-band) with the data plane.
When one control plane is designed, it is urgent to ensure a determined performance is provided within an acceptable cost. However, insufficient research is conducted for verifying whether the control plane satisfies requirements of a design target under different failure conditions at present. The problem is called a robustness verification problem of a distributed control plane. Due to the challenges of two aspects, the problem becomes very difficult. In the first aspect, the control plane may encounter the failure of the controller or the secure link, and such failure may disconnect the switch with its master controller so that the switch becomes an uncovered switch and can no longer process new flow requests. Such potential failures may be countless. In the second aspect, when different failure strategies are used to handle the failure, modeling of the performance of the control plane is still an open problem. The control plane selects one slave controller from the slave controllers of a switch that has never been covered as a new master controller. Because an additional uncovered switch is taken over, such operation allows some controllers to display a higher utilization rate. Obviously, the failure situation and the failure recovery strategy adopted by the control plane jointly affect the performance of the control plane.
Therefore, a heretofore unaddressed need exists in the art to address the aforementioned deficiencies and inadequacies.